package org.balthie.demo.jdk.lang.basicType;

public class IntegerDemo {
	public static void main(String[] args) {
//        丢失精度();

//		包装类对象动态性();
	}

	private static void 包装类对象动态性() {
		// 包装类对象 的数值每次被修改后，都会重新分配一块内存（非cache值），也就是说包装类在堆上的对象每次都是新new的
		Integer i = 100;
		Integer j = 100;
		while (i < 150) {
			System.out.println(i +"  "+System.identityHashCode(i++) + ";  j"+j +"  "+System.identityHashCode(j++) + " i == j is " +(i == j)  );
		}
	}

	private static void 丢失精度() {
		double unitPrice = 100.02d;
		int count = 1999;

		System.out.println(unitPrice * count);
		System.out.println(Math.round(unitPrice * count * 100) / 100d);

		System.out.println(100.01D - 100.02D);
	}
}
